# AI Playground ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- ## 简介 **AI Playground用户体验平台** 旨在为行业用户提供"开箱即用"的软硬一体化AI功能体验。无论是个人开发者还是企业创新团队,AI Playground都能提供全链路支持,让复杂的AI技术高效转化为可落地的实践路径,加速AI创新与产品化进程。 本节主要介绍 **移远通信(Quectel)AI 算法 SDK** 在 **RK3576 M2 Linux平台** 的集成部署指南,涵盖人体关键点检测、人脸属性检测、人脸识别三类算法,帮助开发者快速了解与应用部署移远AI算法。 ## 集成的算法服务 | **算法类型** | **功能描述** | **SDK** | | --- | --- | --- | | 人体关键点检测 | 人体17关键点 + 坐姿姿态检测(托腮/低头趴桌/高低肩) | PeopleKptDet | | 人脸属性检测 | 人脸检测 + 情绪/年龄/性别分类 | facial_attributes_detection | | 人脸识别 | 人脸检测/关键点/特征提取与比对 | face-sample(rknn-2.3.2) | ## 部署前准备 ### 开发环境要求 | **项目** | **要求** | | --- | --- | | 开发板 | Quectel PI M2 RK3576 Board | | 操作系统 | Ubuntu 20.04+ / Debian(aarch64,glibc 2.31+) | | NPU | RK3576 内置 6 TOPS(驱动 v0.9.8) | | RKNN 运行时 | librknnrt.so 2.3.2(SDK 自带) | | 推理引擎 | ModelInfer(libinference.so,SDK 自带) | | 连接方式 | adb(板子已 root) | **注:** 三个 SDK 均为移远交付的动态库包(lib/*.so + 3rd_party/ + models/ + demo),解压即可用,无需编译。 ## 算法一:人体关键点检测(PeopleKptDet) ### SDK 概述 **人体关键点检测 + 坐姿姿态检测 SDK v1.2**(RK3576 Ubuntu aarch64)。检测图像中人体 17 个关键点,并分析坐姿姿态:托腮(CHEEK_SUPPORT)、低头趴桌(HEAD_BOWING_BEND_ON_DESK)、高低肩(UNBALANCED_SHOULDER)。推理基于 ModelInfer + RKNN NPU。 ### 运行(板端实测) ```bash adb push PeopleKptDet_RK3576 /data/local/tmp/ cd /data/local/tmp/PeopleKptDet_RK3576 export LD_LIBRARY_PATH=$PWD/lib:$PWD/3rd_party/modelinfer:$PWD/3rd_party/rknn:$PWD/3rd_party/jsoncpp/lib:$PWD/3rd_party/opencv/lib ./demo images/frame_1.jpg 0.25 0.45 ``` ### 实测结果(2026-09-01,RK3576 M2) | **测试图** | **检测结果** | **关键点** | **耗时** | | --- | --- | --- | --- | | frame_1.jpg | CHEEK_SUPPORT(托腮) | 17 | 25.17 ms | | frame_2.jpg | HEAD_BOWING(低头趴桌) | 17 | 25.19 ms | | frame_3.jpg | UNBALANCED_SHOULDER(高低肩) | 17 | 25.22 ms | **检测效果:** ```{image} images/image_JwN2btKPlokYmuxrJxpcdWAmnlh.webp :width: 640px :height: 480px :align: center ``` ```{image} images/image_D9odbShDXowCIbxvjVRcw8nXnWG.webp :width: 640px :height: 480px :align: center ``` ```{image} images/image_QDbHbfd1OoQiPPxaL8rclQzjnld.webp :width: 640px :height: 480px :align: center ``` ### 接口要点 - **init(model, license, module=3, auth_code)**:RK3576 传 module=3(DEV_RK3576) - **inference(BGR图像, rows, cols, ch, PoseFrameResult)**:返回人体框 + 17 关键点 + 姿态结果 - **授权**:正式授权码 或 30 分钟试用(不传码) ## 算法二:人脸属性检测(facial_attributes_detection) ### SDK 概述 **人脸属性检测 SDK v1.2**(RK3576 Ubuntu aarch64)。WiderFace 人脸检测 + FER 情绪/年龄/性别分类,单进程级联:一张 BGR 图像 → 检测全部人脸 → 逐张裁剪 → FER 分类 → 每张脸 emotion/gender/age 三路结果。推理基于 ModelInfer + RKNN NPU。 ### 运行(板端实测) ```bash adb push facial_attributes_detection_RK3576 /data/local/tmp/ cd /data/local/tmp/facial_attributes_detection_RK3576 export LD_LIBRARY_PATH=$PWD/lib:$PWD/3rd_party/modelinfer:$PWD/3rd_party/rknn:$PWD/3rd_party/opencv/lib ./demo images/input.jpg 0.25 0.20 ``` ### 实测结果(2026-09-01,RK3576 M2) ```plaintext inference ret=0 faces=1 face[0] box=[400.0,111.5,164.0,196.8] det=0.793 emotion=happy(0.537) gender=female(0.743) age=32 save_result: outputs/input.jpg_detected.jpg + outputs/input.jpg.json ``` **检测效果:** ```{image} images/image_FiglbjJn2onauUxEVPzcVhSanKd.webp :width: 1024px :height: 1570px :align: center ``` ### 接口要点 - **init(model1=widerface人脸检测, model2=FER分类, module, auth_code)** - **inference(BGR图像, FaceContext)**:返回每张脸 box + emotion/gender/age - **模块标识**:FAD_MODULE_RK3576=3 ## 算法三:人脸识别(rknn-2.3.2-linux / face-sample) ### 算法概述 **移远自研人脸识别算法**:多尺度检测网络 + 21 个动态关键点定位 + 特征提取,确保复杂场景(遮挡/多姿态/低光照)下的高鲁棒性。轻量化网络结构,单帧处理 <50ms,准确率可达 99.5%,支持 10000 张人脸底库。基于 RKNN 2.3.2。 ### 运行(板端实测) ```bash adb push rknn-2.3.2-linux /data/local/tmp/ cd /data/local/tmp/rknn-2.3.2-linux export LD_LIBRARY_PATH=$PWD/lib ./face-sample ./model/rknn/RK3576/facedet_512_q_3576_enc.rknn \ ./model/rknn/RK3576/facelandmark_q_3576_enc.rknn \ ./model/rknn/RK3576/facereg_l_q_3576_enc.rknn \ facedb/ ./image/02.jpg ``` **运行参数:** 参数1人脸检测模型,参数2关键点模型,参数3识别模型,参数4人脸库目录,参数5待检测图片。 ### 实测结果(2026-09-01,RK3576 M2) ```plaintext Face SDK version: V3.0.0 FaceRecognizer: model init success. (3 个模型加载成功) Face num: 1, filename: facedb/01.jpg, run time: 58.5 ms Face num: 1, filename: facedb/02.jpg, run time: 49.1 ms Face num: 1, filename: facedb/03.jpg, run time: 48.7 ms Face num: 1, filename: facedb/04.png, run time: 84.4 ms preson num is: 4 face size = 3, time = 100.19ms id: -1 score: 0.206 id: 0 score: 0.902 id: 2 score: 0.716 ``` **结果解析:** 底库注册 4 人(48~84ms/张),测试图检测 3 张脸,其中 **id=0 相似度 90.2%**、**id=2 相似度 71.6%** 匹配成功,id=-1 为未注册人脸。 **识别效果:** ```{image} images/image_RAdzbN1Zbo9VyKxVKSNc5Arbnsu.webp :width: 1069px :height: 1890px :align: center ``` ### 接口要点 - **授权**:需要授权文件(face_license.ini)+ 联网授权(SLAS SDK V2.2.7),授权失败时功能仍可运行 - **支持底库**:10000 张人脸 ## Demo 演示 三个 SDK 均提供预编译 demo 程序,命令行一键运行(见各算法实测章节)。 **人体关键点检测**:./demo images/frame_1.jpg 0.25 0.45 → outputs/frame_1_detected.jpg(绿框+红关键点+姿态文本) **人脸属性检测**:./demo images/input.jpg 0.25 0.20 → outputs/output.jpg(人脸框+属性标注) **人脸识别**:./face-sample <三模型> facedb/ <图片> → result.jpg(识别标注) ## 常见问题排查 | **问题** | **可能原因** | **解决方案** | | --- | --- | --- | | libopencv_core.so.4.2 找不到 | OpenCV 库路径未设置 | export LD_LIBRARY_PATH 包含 3rd_party/opencv/lib | | init 返回 -1 | 授权码错误/模型路径不对 | 检查授权码与模型路径 | | 30 分钟试用到期 | 未传授权码 | 传入正式授权码 | | 人脸识别授权失败(100010) | 需联网授权/授权文件缺失 | 联网验证或配置 face_license.ini | | 推理慢 | NPU 未定频 | NPU 定频 950MHz(见 NPU 使用指南) | ## 更多算法,尽在AlgoStore算法超市 ## AlgoStore算法超市 ### AlgoStore算法超市简介 AlgoStore算法超市是由移远通信(Quectel)开发的一站式AI算法服务平台。作为一站式AIoT算法平台,AlgoStore就像一个汇聚丰富前沿AI算法的"超级市场",凭借强大的算法适配能力、便捷的算法定制服务和完善的AIoT生态体系,让企业和开发者能够像"选购商品"般轻松获取合适的AI算法,助力其破解业务难题的同时,驱动产品加速创新。 [AlgoStore算法超市入口]() ### 核心特性 - **算法领先**:汇聚了包括视觉、音频等多领域的先进AI算法,以上的核心算法经客户实际项目验证,并且不断迭代创新。 - **硬件适配**:算法全面覆盖Qualcomm、Unisoc、Rockchip、MediaTek等主流芯片,消除选型顾虑。 - **深度定制**:全球化布局与客户服务网络,针对差异化业务需求提供深度定制化服务,打造专属解决方案。 ### 联系我们 若想要获取更多算法体验或者获取算法集成SDK,请前往官网联系我们! ```{image} images/image_HC3Zbzz68orvvnxPMQXcJJnIn6d.webp :width: 1908px :height: 992px :align: center ``` ## AIDE开发工具链 ### AIDE开发工具链简介 移远通信一站式 AI 开发工具链 AIDE(AI Development Tools & Engines)是面向AI应用开发者和端侧设备厂商的一站式开发工具链平台,核心覆盖"模型转换 - 优化- 端侧推理"全链路,旨在解决 **多模型格式适配难**、**多硬件平台兼容复杂**、**端侧推理性能不足** 三大核心痛点,加速 AI 模型从训练完成到业务落地的周期。 [AIDE开发工具链入口]() ### 核心模块 - **ModelForge AI模型转换与优化工具**:支持多种主流模型格式上传与多芯片平台。通过通道量化、位宽量化、模型校准等多元量化优化技术,实现模型轻量化压缩与推理效率跃升,打造更适配各类智能终端场景的端侧部署模型,确保转换后模型精度与性能双达标。 - **ModelInfer AI推理引擎**:深度适配CPU/GPU/NPU异构计算单元,支持多计算单元协同推理,显著降低延迟、提升硬件资源利用率,缩短从模型算法研发到应用落地的周期。 ### 模型转换与部署 本节将通过示例演示将 mobilenet v3 的模型转化到端侧部署全过程。 #### 模型转换 **模型上传** 登录AI开放平台,选择AI开发工具链。在源模型界面选择合适的模型格式,然后点击同意隐私协议和使用条款。上传模型并等待完成。 ```{image} images/image_AwHqbTtgloWentxUDZ3c5G4Pnqd.webp :width: 865px :height: 573px :align: center ``` **选择目标硬件** 在目标硬件平台依次选择合适的目标硬件平台,芯片平台以及推理引擎。 ```{image} images/image_ExJKbdxtqoh7e1xFfWkcBos9ni9.webp :width: 866px :height: 608px :align: center ``` **模型配置** 在模型配置界面可以设置模型名称,输入尺寸会根据上传模型自动获取,也可根据实际需求设置。 模型量化可以减少模型大小并提升推理速度,但是会降低准确率。开启模型量化后,会出现如下量化参数界面。量化方法中可以选择是否启用通道优化,以进一步减小模型大小。接下来可以选择量化位宽,根据实际模型去设置输入的均值和方差。最后选择校准数据集,默认使用COCO数据集,也可以选择自定义数据集然后上传自己的校准数据集。 ```{image} images/image_J9npbM7wcoBqlYxrf6VcEL1OnYd.webp :width: 865px :height: 649px :align: center ``` **确认配置** 接下来将会展示模型转换的信息,确认无误就可以进行模型转换,如果有修改可以点击上一步进行修改。 ```{image} images/image_FOUqbNYLeoWaT2xq04fc24rDn8c.webp :width: 865px :height: 558px :align: center ``` **模型转换** 模型转换成功后,可以点击按钮即可下载模型。 ```{image} images/image_NELnbeMBloaavjxz3MTcuT7VnQc.webp :width: 864px :height: 597px :align: center ``` #### 部署示例 **cmake集成** 由于ModelInfer SDK已经配置了集成的config.cmake,方便我们进行集成。我们只需要CMakeLists.txt文件中设置ModelInfer SDK的路径,通过find_package查找推理引擎SDK包,包含头文件,定义以及链接库文件即可以完成cmake集成,如下所示: ```cmake cmake_minimum_required(VERSION 3.1) project(MODEL_INFER_TEST) set(CMAKE_CXX_STANDARD 14) set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/OpenCV-android-sdk/sdk/native/jni") find_package(OpenCV REQUIRED) find_library(log-lib log) set(ModelInfer_DIR ${CMAKE_CURRENT_SOURCE_DIR}/model_infer_sdk/0.0.1/Android_aarch64_Release_Q) find_package(ModelInfer REQUIRED) include_directories(${ModelInfer_INCLUDE_DIRS}) add_definitions(${ModelInfer_DEFINITIONS}) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(${PROJECT_NAME} main.cc) target_link_libraries(${PROJECT_NAME} ${ModelInfer_LIBRARIES} ${OpenCV_LIBRARIES} log) ``` **SDK使用示例** 本例以mobilenet分类算法部署的详细说明使用。 包含头文件: ```cpp #include "model_inference.hpp" ``` 首先需要声明推理引擎,本例中使用的是QnnEngine,通过认证函数Authenticate后方可以使用推理引擎,通过调用Init函数来进行初始化,需要注意的是通过模型转换平台下载的模型均已经加密,所以Init第二个参数需要设置true。然后准备模型输入输出参数,ModelInfer引擎均支持多头输入输出。推理引擎并不会创建以及管理内存,所有的输入输出buffer的内存创建、管理以及释放需要由使用者进行操作。最后通过调用Inference函数即可完成一次推理操作。 **编译运行** 通过cmake编译出可以执行程序,push到终端设备上进行运行,可以获得结果。 ```bash adb shell "cd /data/local/tmp/model_infer_demo/ && chmod +x ./MODEL_INFER_TEST && export LD_LIBRARY_PATH=/data/local/tmp/model_infer_demo/:$LD_LIBRARY_PATH && ./MODEL_INFER_TEST ./mobilenetv3_ctx.bin ./20260204-101425.jpg" init success Top-5 Predictions: Class ID: 340, Probability: 0.0700765, Class Name: zebra Class ID: 396, Probability: 0.0140236, Class Name: lionfish Class ID: 117, Probability: 0.0109065, Class Name: chambered nautilus Class ID: 506, Probability: 0.0106358, Class Name: coil Class ID: 56, Probability: 0.00643312, Class Name: king snake ```